﻿#define _CRT_SECURE_NO_WARNINGS 1
//库函数相关头⽂件：https://zh.cppreference.com/w/c/header
//1. 函数原型
//2. 函数功能介绍
//3. 参数和返回类型说明
//4. 代码举例
//5. 代码输出
//6. 相关知识链接】
#include <stdio.h>
//int Add(int x, int y)//形参，，调用时形参才有用
//{
//	return x + y;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//
//	int r=Add(a, b);//实参
//	printf("%d", r);
//	return 0;
//
//}//形参是实参的⼀份临时拷⻉。
//return语句执⾏后，函数就彻底返回，后边的代码不再执⾏。
//形参如果是⼀维数组，数组⼤⼩可以省略不写
//形参如果是⼆维数组，⾏可以省略，但是列不能省略
//函数可以嵌套调用，但是不能嵌套定义
//链式访问就是将⼀个函数的返回值作为另外⼀个函数的参数
#include <stdio.h>
#include <string.h>
//int main()
//{
//	printf("%d\n", strlen("abcdef"));//链式访问
//	return 0;
//}
//printf函数返回的是打印在屏幕上的字符的个数。
//上⾯的例⼦中，我们就第⼀个printf打印的是第⼆个printf的返回值，第⼆个printf打印的是第三个
//printf的返回值。
//⽣命周期指的是变量的创建(申请内存)到变量的销毁(收回内存)之间的⼀个时间段。
//void test()
//{
//	int i = 0;//进来重新赋值
//	i++;
//	printf("%d ", i);
//}
//int main()
//{
//	int i = 0;
//	for (i = 0; i < 5; i++)
//	{
//		test();
//	}
//	return 0;
//}
/*代码1的test函数中的局部变量i是每次进⼊test函数先创建变量（⽣命周期开始）并赋值为0，然后
++，再打印，出函数的时候变量⽣命周期将要结束（释放内存）。
代码2中，我们从输出结果来看，i的值有累加的效果，其实 test函数中的i创建好后，出函数的时候是
不会销毁的，重新进⼊函数也就不会重新创建变量，直接上次累积的数值继续计算*/
//void test()
//{
//	static int i = 0;//static修饰局部变量，
//	i++;
//	printf("%d ", i);
//}
//int main()
//{
//	int i = 0;
//	for (i = 0; i < 5; i++)
//	{
//		test();
//	}
//	return 0;
//}
//使⽤建议：未来⼀个变量出了函数后，我们还想保留值，等下次进⼊函数继续使⽤，就可以使⽤
//static 修饰。
//⼀个函数只想在所在的源⽂件内部使⽤，不想被其他源⽂件使⽤，就可以使⽤ static 修饰；